package com.gkzf.ai.module.crm.service.creditReport;

import java.math.BigDecimal;

public interface IncomeDebtRatioService {

    /**
     * 信用贷款月还款金额
     * @param creditReportDetailsId 征信报告明细id
     * @return 信用贷款月还款金额
     */
    BigDecimal getMonthlyRepaymentAmount(Long creditReportDetailsId);

    /**
     * 获取合计信用贷款总额
     * @param creditReportDetailsId 征信报告明细id
     * @return 合计信贷贷款总额
     */
    BigDecimal getTotalMonthlyRepaymentAmount(Long creditReportDetailsId);

    /**
     * 获取信用贷款总额
     * @param creditReportDetailsId 征信报告明细id
     * @return
     */
    BigDecimal getTotalCreditLoanAmount(Long creditReportDetailsId);

    /**
     * 获取年收入
     *
     * @param creditReportDetailsId 征信报告明细id
     * @return
     */
    BigDecimal getAnnualIncome(Long creditReportDetailsId);

    /**
     * 获取认定月收入
     * @param creditReportDetailsId 征信报告明细id
     * @param types 类型 可多选；类型：个税、社保缴存基数、公积金缴存基数、基于按揭房月供、基于房产市值
     * @return
     */
    BigDecimal getConcludeMonthlyIncome(Long creditReportDetailsId, String types);


    /**
     * 获取月收入
     * @param creditReportDetailsId 征信报告明细id
     * @return 年收入 / 12
     */
    BigDecimal getMonthlyIncome(Long creditReportDetailsId);

    /**
     * 获取年收入
     *
     * @param userOpenId 小程序用户标识
     * @return
     */
    BigDecimal getAnnualIncome(String userOpenId);

    /**
     * 获取月收入
     * @param userOpenId 小程序用户标识
     * @param types 类型 可多选；类型：个税、社保缴存基数、公积金缴存基数、基于按揭房月供、基于房产市值
     * @return
     */
    BigDecimal getMonthlyIncome(String userOpenId, String types);


    /**
     * 获取指定用户的指定机构余额总和
     * @param creditReportDetailsId 明细编号
     * @param institutionName 机构名称
     */
    String getBalanceTotalByDetailsIdAndInstitution(Long creditReportDetailsId,String institutionName);
}
